package cn.iocoder.yudao.module.energy.dal.dataobject.report;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 能耗报告数据 DO
 *
 * @author 芋道源码
 */
@TableName("energy_report_data")
@KeySequence("energy_report_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class EnergyReportDataDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    
    /**
     * 设备ID
     */
    private String deviceId;
    
    /**
     * 上报数据类型
     */
    private String reportDataType;
    
    /**
     * 上报数据实际值
     */
    private BigDecimal reportDataValue;
    
    /**
     * 上报数据级别
     * 数据级别枚举值：
     * - info（正常）：偏差在10%以内
     * - warning（警告）：偏差在10%-20%之间
     * - danger（危险）：偏差超过20%
     */
    private String reportDataLevel;
    
    /**
     * 上报数据时间
     */
    private LocalDateTime reportDataTime;
    
    /**
     * 累计能耗(kWh)
     */
    private BigDecimal energyConsumption;
    
    /**
     * 上报数据信息
     */
    private String message;
    
    /**
     * 处理状态
     * 处理状态枚举值：
     * - unprocessed（未处理）
     * - processing（处理中）
     * - processed（已处理）
     * - ignored（已忽略）
     */
    private String status;
    
    /**
     * 上传标识
     * - 1: 批量上传
     * - 2: 随机生成上传
     */
    private Integer uploadType;
} 